/*
 * Copyright (c) 2024. hallele, Inc All rights reserved.
 */

package cn.hallele.ms.starter.web.config.proereties;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;

/**
 * hallele_mc_core
 *
 * @author anle5
 * @since 2024/9/15 13:55
 */
@Getter
@Setter
@RefreshScope
@ConfigurationProperties(prefix = "hal.ms.infrastructure.plugin")
public class PluginProperties {
    /**
     * 验证码插件
     */
    private CaptchaProperties captcha;

    /**
     * 安全组件
     */
    private SafetyProperties safety;

    /**
     * 验证码插件配置
     */
    @Getter
    @Setter
    public static class CaptchaProperties {
        /**
         * 是否启用该插件，默认关闭
         */
        private boolean enabled = false;

        /**
         * 图片宽
         */
        private int width = 120;

        /**
         * 图片高
         */
        private int height = 40;

        /**
         * 字符个数
         */
        private int codeCount = 4;

        /**
         * 验证码干扰元素个数
         */
        private int interfereCount = 3;

        /**
         * 验证码过期时间，单位：s，默认60s
         */
        private long ttl = 60;
    }

    /**
     * 安全组件配置
     */
    @Getter
    @Setter
    public static class SafetyProperties {
        /**
         * 是否启用登录用户密码安全组件，默认关闭
         */
        private boolean enabled = false;

        /**
         * 用户登录密码RSA加密公钥，使用base64生成的一串密钥
         */
        private String loginPassPubKey;

        /**
         * 用户登录密码RSA加密私钥，使用base64生成的一串密钥
         */
        private String loginPassPriKey;
    }
}
